ASP.NET Core অ্যাপ্লিকেশন নির্মাণে Middleware একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। Middleware হলো সফটওয়্যারের কম্পোনেন্ট যেগুলি HTTP রিকোয়েস্ট এবং রেসপন্স পাইপলাইনে কাজ করে। ASP.NET Core এর Middleware সিস্টেম বিভিন্ন ধরনের কাজ সম্পাদন করতে ব্যবহৃত হয়, যেমন রিকোয়েস্ট লগিং, অথেন্টিকেশন, অথরাইজেশন, রিকোয়েস্ট বৈধকরণ (validation), এবং রেসপন্স ট্রান্সফর্মেশন।
Middleware অ্যাপ্লিকেশনের রিকোয়েস্ট এবং রেসপন্স প্রসেসিং এর জন্য একে অপরের সাথে যুক্ত হয়ে কাজ করে। এই প্রক্রিয়াটি রিকোয়েস্টের প্রথম গ্রহণ থেকে রেসপন্স ফেরত দেওয়ার শেষ পর্যন্ত চলে। একাধিক Middleware একের পর এক পাইপলাইনে কাজ করে, যেমন:
ASP.NET Core-এ কাস্টম Middleware তৈরি করা খুবই সহজ। এটি সাধারণত একটি ক্লাসের মাধ্যমে তৈরি করা হয় যা Invoke
বা InvokeAsync
মেথডের মাধ্যমে রিকোয়েস্ট প্রক্রিয়ায় হস্তক্ষেপ করে।
Invoke
বা InvokeAsync
মেথডে রিকোয়েস্ট এবং রেসপন্স প্রসেসিংয়ের জন্য কোড লিখবে।Configure
মেথডে এই কাস্টম Middleware যোগ করুন।ধরা যাক, আপনি একটি কাস্টম Middleware তৈরি করতে চান যা রিকোয়েস্টের আগে কিছু লোগিং কাজ করবে এবং এরপর রেসপন্স ফেরত দেবে।
public class RequestLoggingMiddleware
{
private readonly RequestDelegate _next;
public RequestLoggingMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
// রিকোয়েস্টের তথ্য লগ করা
Console.WriteLine($"Request Path: {context.Request.Path}");
// পরবর্তী Middleware বা Request Handler কল করা
await _next(context);
// রেসপন্সের পরবর্তী তথ্য লগ করা
Console.WriteLine($"Response Status Code: {context.Response.StatusCode}");
}
}
কাস্টম Middleware ব্যবহার করতে, স্টার্টআপ ক্লাসে Configure
মেথডে এটি যোগ করতে হবে।
public class Startup
{
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// কাস্টম Middleware যোগ করা
app.UseMiddleware<RequestLoggingMiddleware>();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
এখানে UseMiddleware<RequestLoggingMiddleware>()
দ্বারা কাস্টম Middleware পিপলাইনে যুক্ত করা হয়েছে। এখন যখন কোনো রিকোয়েস্ট আসবে, Middleware রিকোয়েস্টের পথ এবং রেসপন্সের স্ট্যাটাস কোড লোগ করবে।
ASP.NET Core Middleware আরো উন্নত করতে এবং কাস্টমাইজ করতে বেশ কিছু ফিচার ব্যবহার করা যেতে পারে, যেমন:
public class RequestLoggingMiddleware
{
private readonly RequestDelegate _next;
public RequestLoggingMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
// শুধুমাত্র নির্দিষ্ট পাথের জন্য লগিং
if (context.Request.Path.StartsWithSegments("/api"))
{
Console.WriteLine($"API Request Path: {context.Request.Path}");
}
await _next(context);
}
}
এটি শুধুমাত্র /api
পাথের রিকোয়েস্টের জন্য লোগিং করবে।
Middleware ASP.NET Core অ্যাপ্লিকেশনে খুবই গুরুত্বপূর্ণ উপাদান। এটি রিকোয়েস্ট এবং রেসপন্স প্রসেসিং-এর জন্য একে অপরের সাথে কাজ করে এবং বিভিন্ন ধরনের ফাংশনালিটি যোগ করে, যেমন লগিং, অথেন্টিকেশন, অথরাইজেশন, এবং এক্সসেপশন হ্যান্ডলিং। কাস্টম Middleware তৈরি করার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে আরও কাস্টমাইজড এবং কার্যকরী করতে পারেন।
common.read_more